透过评论看Runningman
微信公众号:zuobangbang
《Running Man》是韩国SBS电视台在《星期天真好》单元推出的户外竞技真人秀节目。节目致力于打造一个不同于Real variety的新型态娱乐节目。每期有不同的主题,由不同的嘉宾参演,分为不同的队伍进行比赛,通过完成各种游戏任务,最后获胜一方将获得称号或奖品。成员组成包括原六位成员刘在石、池石镇、金钟国、HAHA(河东勋)、宋智孝、李光洙 ,以及两位新成员全昭旻、梁世灿。
以上抄自百度百科。。。
抓取数据
自从限韩令发布后,running man在除B站以外的各大视频网站均下架,所以本文从B站出发,抓取相关视频的所有评论。由于相关视频非常多,本文选择了最具代表性,点击量观看次数最多的视频。进入这个页面后开始抓包(https://www.bilibili.com/video/av18089528?from=search&seid=
16848360519725142300)不断点击下一页,可以发现reply?callback=这个文件一直在出现。
打开其中一个文件以后可以看到每一面的评论都在里面;只需构建出类似的URL就可以把所有的评论都爬下来啦。
分析一下这个URL:https://api.bilibili.com/x/v2/replycallback=jQuery17201477141935656543_1541165464647&jsonp=jsonp&pn=368&type=1&oid=18089528&sort=0&_=1541165714862
pn是页面数,_对应距离1971年1月1日的秒数,直接用time.time就可以获得,其余参数保持不变。数据格式是json,但是B站有点小狡猾啊~它把所有的json数据都存在jQuery17201477141935656543_1541165464647(。。。)这个里面,所以提取的时候要处理一下(talk is cheap,show me the code)
html=requests.get(url,headers=headers).text
html=json.loads(html.split('(',1))[1][:-1])
最后我们把所有的评论都抓取下来存入excel中,数据格式是这样子的:
写入csv的时候一定要记得encoding='utf-8',就因为少了这个,数据总会乱码,因为各种奇葩的原因(点了一下,拉宽了一下,原地保存一下。。。)
数据清洗
对于B站的各种缺失数据,就直接用0替换;对于诗歌类的评论,它存到csv时是一句占一行,而它的其余信息都会存到最后一行,所以在处理时,把前面的n-1行打包append到n行的评论中,再把n-1行删除;对于B站返回的时间(类似于1540882722);用time.strftime('%Y-%m-%d %H:%M:%S,time.localtime())变换成2018/11/12 22:15:15。
数据分析
清理后一共得到7513*11条数据,接下来对数据进行一些分析,数据分析通过python和R完成。
男女分布
从饼图可以看出,近六成的人选择保密个人信息,公开信息显示女生仅比男生多3%。这个结论是出乎意料的。原来不论男女都很喜欢runningman。
评论周分布
running man在韩国的更新时间是每周天下午,但是要到周一B站才会有所更新。因此从评论周分布图可以看到,星期一的评论数是远远大于其他时间的,其次是星期二和星期天,正好在runnning man 更新前后,对比其他时间段评论数有一定增长。
评论时间分布
除了每周评论数,对于评论数的日趋势也十分好奇,大家一般会在什么时间段内观看评论呢?
根据上图可以看到,在6点以后迎来一个爆炸性增涨,在11点-13点之间达到峰值,其次是在15点-17点之间迎来第二波小高潮。在晚间,除了20点有一定下降外,评论数都接近500条。而午夜评论数最少,不过还是有不少夜猫子啊。
评论字数与点赞数
对比每条评论的字数与点赞次数,从上图可以看到,评论的字数越多,获得赞的概率就越大:100字以上的评论获得赞的平均次数远高于100字以下的评论,而那些10个字以内的评论基本没有获得赞,所以只要你是认真评论写出大家的心声,就能获得大家的认同。
情感分析
将大家的评论分别进行情感分析,越接近1说明正面情感越强烈;相反越靠近0负面情绪越强。从上图可以看到,虽然有近600人的评论是非常负能量,但是绝大多数的人都是1分,0.9分。在running man给我们带来欢乐与感动的同时,大家对running man是满满的宠爱啊。
话题度排行
一直都很好奇在观众心中哪个mc的话题度最高,所以做了一个话题度排行。从上图可以看到haha是最具话题性的mc(这个结果有点出乎意料呢)其次是李光洙和宋智孝。因为笔者统计的是2018年的running man ,所以gary的数据是有点凄惨的。对比两个新成员,全妹的话题度比世赞高的不是一点点。
running man一直都不缺cp,前有周一情侣Gary和宋智孝,权力夫妇刘在石和金钟国,老年line刘在石和池石镇,我兄我弟金钟国和haha,背叛者联盟必触cross;现在又有国民兄妹刘在石和全昭敏,麻浦兄妹宋智孝和haha,烤肉line金钟国haha等等。他们的关系错综复杂,所以笔者打算好好扒一扒观众眼中的各种line。
成员关系矩阵
满分为100分,可以看到池石镇和刘在石;刘在石和李光洙;金钟国和宋智孝;Gary和宋智孝;haha和李光洙;全昭敏和宋智孝的相关性均非常高,其中Gary和宋智孝的相关性居然达到40,也就是说评论中如果有GARY那么有四成的概率会出现宋智孝,周一情侣真的是深入人心。其次是宋智孝和金钟国,看来之前还一直有人说他俩会结婚也不是空穴来潮
社交网络关系网
在社交网络关系网中,按红,黄,绿,蓝将联系的紧密程度划分为四个等级,其中红色代表联系非常紧密,而蓝色是不紧密。可以看到,李光洙,haha,刘在石三人联系非常紧密,同时金钟国和宋智孝的关系也非常密切。对于Gary,自从他退出running man以后,各成员和他的联系都非常小。
词云图
最后,希望running man 给我们带来越来越多欢乐,收视率越来越好噢。相关代码上传到Github:https://github.com/zuobangbang/running-man--Bilibili
Python爱好者社区历史文章大合集:
Python爱好者社区历史文章列表(每周append更新一次)
关注后在公众号内回复“课程”即可获取:
小编的转行入职数据科学(数据分析挖掘/机器学习方向)【最新免费】
小编的Python入门免费视频课程!!!
小编的Python快速上手matplotlib可视化库!!!
崔老师爬虫实战案例免费学习视频。
陈老师数据分析报告制作免费学习视频。
玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。